﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using WpfSnqkGasAnalysis.Model;

namespace WpfSnqkGasAnalysis
{
    /// <summary>
    /// 处理数字显示为三位小数
    /// </summary>
    /// 创建时间：2022-12-28 15:50:24。作者：王浩力
    internal class PrintNumberConvert : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null && value.ToMyDecimal() == 0 && parameter == null
                )
            {
                return "0.000";
            }
            else if (value == null && parameter == null)
            {
                return "/";
            }

            if (parameter == null)
                return value.ToMyDecimal()?.ToString("f3");

            //水露点，总硫未输入时，显示 /
            if (value.ToMyDecimal() == 0 && parameter != null && (parameter.ToString() == "99" || parameter.ToString() == "199")) 
            {
                return value; 
            }
            else if (value.ToMyDecimal() > 0 && parameter != null && parameter.ToString() == "99")
            {
                //硫化氢 mg/m3 处理为整数
                return value.ToMyDecimal()?.ToString("f0");
            }
            else if (value == null && parameter != null && parameter.ToString() == "99")
            {
                //硫化氢 mg/m3 处理 
                return "/";
            }

            //总硫，水露点，保留一位小数。//创建时间：2023-1-14 22:32:24。作者：王浩力
            else if (value.ToMyDecimal() > 0 && parameter != null && parameter.ToString() == "199")
            { return value.ToMyDecimal()?.ToString("f1"); }
            else if (value == null && parameter != null && parameter.ToString() == "199")
            {
                return "/";
            }

            //硫化氢，mol %   //添加时间：2023年1月15日00:20:50
            if (value == null && parameter != null && parameter.ToString() == "0")
            {
                return "/";
            }

            if (int.TryParse(parameter.ToString(), out int intNum))
            {
                string wei = "F" + intNum;
                return value.ToMyDecimal()?.ToString(wei);
            }
            return value.ToMyDecimal()?.ToString("f3");
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
